package com.dream.demoquickstart.service;

import com.dream.demoquickstart.pojo.Article;
import com.dream.demoquickstart.pojo.ArticleCategory;
import com.dream.demoquickstart.pojo.ArticleState;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @version 1.0
 * @program: demo-quickstart
 * @className ArticleService
 * @description:
 * @author: Administrator
 * @create: 2025-08-19 20:28
 **/
public interface ArticleService {
    /**
     * 新增文章
     * @param article 文章对象
     */
    void insertArticle(Article article);

    /**
     * 更新文章
     * @param article 文章对象
     */
    void updateArticle(Article article);

    /**
     * 根据ID删除文章
     * @param id 文章ID
     */
    void deleteArticleById(Integer id);

    /**
     * 根据ID查询文章详情
     * @param id 文章ID
     * @return 文章对象
     */
    Article selectArticleById(Integer id);

    /**
     * 条件分页列表查询
     * @param pageNum 当前页码
     * @param pageSize 每页显示数量
     * @param categoryId 分类ID
     * @param stateId 状态ID
     * @return 包含分页信息的文章列表
     */
    PageInfo<Article> selectAllArticle(Integer pageNum, Integer pageSize, Integer categoryId, String stateId);

    /**
     * 获取所有文章分类
     * @return 分类列表
     */
    List<ArticleCategory> selectAllCategory();

    /**
     * 获取所有文章状态
     * @return 状态列表
     */
    List<ArticleState> selectAllState();
}
